package gob.inei.enaho.model.service;

import gob.inei.enaho.model.domain.persona.Encuestador;

import java.sql.SQLException;
import java.util.List;

import util.android.sqlite.SelectSQLite;
import util.android.sqlite.SeteadorSQLite;
import util.www.sql.WhereSqlDinamico;
import android.database.Cursor;


public class EncuestadorService 
extends AbstractService
{
	private PersonalService personalService;
	
	@Override
	protected String getNombreTabla() {
		return "Personal";
	}
	
	private SelectSQLite<Encuestador> getSelectPosiblesEncuestadoresActivos(WhereSqlDinamico w) throws SQLException {
		SelectSQLite<Encuestador> s = new SelectSQLite<Encuestador>(Encuestador.class);
		s.setSelect("select *");
        s.setFrom("from Personal P");   
        w.and("activo=1 and cargo in ('01','02','03','04')");
        s.setWhereHaving(w.getSql());
        s.setOrderby("order by CARGO desc, P.APEPATERNO");
		
		s.setSeteador(new SeteadorSQLite<Encuestador>() {			
			@Override
			public void ejecutar(Cursor cr, Encuestador obj) {
				personalService.setear(cr,obj);
			}
		});		
		return s;
	}
		
	public List<Encuestador> findPosiblesEncuestadoresActivos() throws SQLException {
		SelectSQLite<Encuestador> s = this.getSelectPosiblesEncuestadoresActivos(new WhereSqlDinamico());		
		return s.getLista(getOpenHelper());
	}

	public Encuestador findPosibleEncuestadorActivoByDni(String dni) throws SQLException {
		if(dni==null || dni.trim().isEmpty())
			return null;
		WhereSqlDinamico w = new WhereSqlDinamico();
		w.and("dni=",dni);
		return getSelectPosiblesEncuestadoresActivos(w).getUnique(getOpenHelper());
	}

	public PersonalService getPersonalService() {
		return personalService;
	}

	public void setPersonalService(PersonalService personalService) {
		this.personalService = personalService;
	}
	
	
}
